package com.c2rusthub.service.mapper;

import com.c2rusthub.service.model.Task;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface TaskMapper {

    // 插入任务
    @Insert("INSERT INTO t_task (user_id, c_url, reward_amount, claim_status, created_time) VALUES (#{userId}, #{cUrl}, #{rewardAmount}, #{claimStatus}, NOW())")
    int insertTask(Task taskReleaseRequest);

    // 根据 ID 查询任务
    Task findById(Integer id);

    // 查询所有任务
    List<Task> findAll();

    // 根据 cUrl 获取任务列表
    List<Task> findTasksByCUrl(String cUrl);


    // 更新任务的热度
    @Update("UPDATE t_task SET heat = heat + 1 WHERE id = #{taskId}")
    int updateTaskHeat(int taskId);

    // 查询待认领任务的数量
    @Select("SELECT COUNT(*) FROM t_task WHERE claim_status = 2")
    int getUnclaimedTaskCount();

    /**
     * 查询可认领的任务列表
     *
     * @return List<Task>
     */
    List<Task> findClaimableTasks();

    // 更新待转译任务的状态
    @Update("UPDATE t_task SET claim_status = 1 WHERE id = #{taskId}")
    int updateTaskStatus( int taskId);
}
